ποΈGitΠ―ΡΠ°ποΈ
scripts/verify-flatpak/README.md docs/2.8.0-feature-docs (1f66dbf8) Text, 4.20 KB
Local Flatpak Verification
Replicates vid's T383838org.meshtastic.desktop GHA flatpak build on your machine so you
can validate T383838flatpak-sources.json end-to-end without round-tripping through his repo.
What it tests that our CI doesn't
Our CI (T383838:desktopApp:packageUberJarForCurrentOS :captureFlatpakSources) only proves the manifest can be generated.
Vid's CI is where the manifest actually gets consumed by T383838flatpak-builder. This script
runs that step locally:
1. Clones T383838vidplace7/org.meshtastic.desktop.
2. Overlays a patched manifest that:
β’ Swaps the T383838meshtastic/Meshtastic-Android.git source for a T383838type: dir pointing at
your local checkout (so you can test uncommitted changes).
β’ Uncomments T383838- flatpak-sources.json.
β’ Drops T383838--share=network from the build-args (true offline β what Flathub requires).
β’ Adds T383838--offline to the Gradle invocation (belt + suspenders).
3. Runs T383838flatpak-builder in a Docker container with the same Freedesktop 25.08 SDK
vid's GHA image uses.
If your T383838flatpak-sources.json has the wrong URL, wrong sha256, or a missing entry,
the build fails with the same error vid would see. You can iterate in ~5β15 min loops
instead of waiting on cross-repo CI.
Prerequisites
β’ Docker (Docker Desktop on macOS works β the container needs T383838--privileged to use
bubblewrap; that's enabled by default).
β’ ~10 GB free disk for the SDK + Gradle cache.
β’ A populated Gradle cache (T383838./gradlew :desktopApp:packageUberJarForCurrentOS must have
run; the script does this implicitly via T383838:captureFlatpakSources).
Usage
T282828
T8b949e# Full offline build β Linux host required (~15β30 min first time)
scripts/verify-flatpak/verify.sh
T8b949e# URLs + sha256 verification only; skips the Gradle build phase.
T8b949e# Works on macOS where nested bwrap fails under Docker Desktop's seccomp.
scripts/verify-flatpak/verify.sh --download-only
T8b949e# Reuse an already-generated flatpak-sources.json (don't re-run Gradle)
scripts/verify-flatpak/verify.sh --skip-regen
T8b949e# Tight iteration loop after a failed run: refresh overlay yaml + manifest
T8b949e# only, then re-run flatpak-builder. Skips Gradle regen, vid-repo fetch,
T8b949e# and Meshtastic-Android rsync. Use when you've just patched the YAML
T8b949e# overlay or regenerated flatpak-sources.json by hand.
scripts/verify-flatpak/verify.sh --rebuild-only
T8b949e# Cross-arch test via QEMU emulation (slower)
scripts/verify-flatpak/verify.sh --arch aarch64
T8b949e# Drop into the builder container shell to poke at things
scripts/verify-flatpak/verify.sh --shell
macOS limitation
T383838flatpak-builder runs the build phase inside T383838bwrap (bubblewrap). Nested
bwrap fails inside Docker Desktop on macOS with
T383838prctl(PR_SET_SECCOMP) EINVAL. The script refuses to run a full build on
macOS by default β pass T383838--download-only to validate URLs + sha256s without
executing the Gradle build, or run the full script on a Linux host.
Interpreting failures
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β Symptom β Likely cause β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β T383838Error downloading mirror: ... 404 on T383838repo.maven.apache.org β URL captured by the listener was wβ¦ β
β T383838sha256 mismatch β Stale T383838flatpak-sources.json; re-runβ¦ β
β Gradle: T383838Could not resolve all artifacts ... offline mode β Missing dep in the manifest β usuaβ¦ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββ
Files
β’ T383838verify.sh β entry point. Idempotent: re-running just re-syncs the overlay and re-runs flatpak-builder.
β’ T383838desktop-offline.yaml β patched manifest. Kept in sync manually with vid's upstream;
diff against T383838https://raw.githubusercontent.com/vidplace7/org.meshtastic.desktop/main/org.meshtastic.desktop.yaml
if vid changes something material.
Served by rngit 1.5.0 - Generated in 0.04s